// components/test2/test2.js
Component({
    /**
     * 组件的属性列表
     */
    properties: {

    },

    /**
     * 组件的初始数据
     */
    data: {
        a:1,
        b:2,
        sum:3,
        obj:{
            name:'tom',
            age:18
        }
    },

    /**
     * 组件的方法列表
     */
    methods: {
        achange(){
            this.setData({
                a:this.data.a + 2
            })
        },
        bchange(){
            this.setData({
                b:this.data.b + 3
            })
        },
        changeage(){
            this.setData({
               'obj.age':20
            })
        }
    },
    /* 数据监听器 同vue中的watch */
    observers:{
       /*  'a':function(value){
            // 改变过后的新值
            console.log(value);
            this.setData({
                sum:value + this.data.b
            })
        },
        'b':function(value){
            this.setData({
                sum:this.data.a + value
            })
        } */
        "a,b":function(value1,value2){
            this.setData({
                sum:value1 + value2
            })
        },
        'obj.age':function(){
            console.log('监听对象的变化')
        }

    },
    // 组件生命周期函数可以在此处使用，但是不推荐 老版用法
    created(){
        console.log('created')
    },
    attached(){
        console.log('attached');
    },
    // 推荐使用此种方式  这是新版用法 当老版用法和新版用法产生冲突时，新版优先级高
    lifetimes:{
        created(){
            console.log('created_xin')
        },
        attached(){
            console.log('attached_xin');
        },
    },
    pageLifetimes:{
        show(){
            console.log('show');
        },
        hide(){
            console.log('hide');
        },
        resize(){
            console.log('resize')
        }
    }
})
/* 
小程序组件的声明周期函数   created   attached  detached 常用的
created 组件实例刚被创建时执行
attached 在组件实例进入页面节点树时执行
ready 在组件视图布局完成之后执行
moved 在组件实例从一个节点树的位置移动到另一个节点树位置时执行
detached 在组件实例从页面节点树移除时执行
error 组件抛出错误时执行



*/